package mo.byte_school;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class L1 {

    public int[] twoSum(int[] nums, int target) {
        Map<Integer, List<Integer>> num2idx = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            List<Integer> idxList = num2idx.getOrDefault(nums[i], new ArrayList<>());
            idxList.add(i);
            num2idx.put(nums[i], idxList);
        }
        for (Map.Entry<Integer, List<Integer>> entry : num2idx.entrySet()) {
            Integer key = entry.getKey();
            List<Integer> values = num2idx.get(target - key);
            if (values != null) {
                return new int[]{entry.getValue().get(0), values.get(values.size()-1)};
            }
        }
        return new int[]{-1, -1};
    }

}
